

///@description:  xlog日志打印
class XLogUtils {
  XLogUtils._();

  static const String _TAG_DEF = "###common_utils###";

  static bool debuggable = false; //是否是debug模式,true: log v 不输出.
  static String TAG = _TAG_DEF;

  static void init({bool isDebug = false, String tag = _TAG_DEF}) {
    debuggable = isDebug;
    TAG = tag;
  }

  static void d(String tag, String object) {
    _printLog(tag, '  d  ', object);
  }

  static void i(String tag, String object) {
    _printLog(tag, '  i  ', object);
  }

  static void w(String tag, String object) {
    _printLog(tag, '  w  ', object);
  }

  static void e(String tag, String object) {
    _printLog(tag, '  e  ', object);
  }

  static void v(String tag, String object) {
    if (debuggable) {
      _printLog(tag, '  v  ', object);
    }
  }

  static void _printLog(String tag, String stag, Object object) {
    StringBuffer sb = StringBuffer();
    sb.write((tag.isEmpty) ? TAG : tag);
    sb.write(stag);
    sb.write(object);
    print(sb.toString());
  }
}
